package net.zoneland.knowledge.enums;

import com.branchitech.utils.enums.EnumExtend;
import com.branchitech.utils.enums.EnumUtils;

/**
 * 第一议题列玖举.
 * @author zx
 */
public enum DiYiYiTiReportColumnEnum implements EnumExtend {

    /**
     * excel index 0.
     */
    COLUMN_INDEX_ZERO(0, "1280","excel index 0"),

    /**
     * excel index .
     */
    COLUMN_INDEX_ELEVEN (1, "3016", "excel index"),

    /**
     * excel index 2.
     */
    COLUMN_INDEX_ONE(2, "3016","excel index 2"),

    /**
     * excel index 3.
     */
    COLUMN_INDEX_TWO(3, "30409", "excel index 3"),

    /**
     * excel index 4
     */
    COLUMN_INDEX_THREE(4, "3840", "excel index 4"),

    /**
     * excel index 5
     */
    COLUMN_INDEX_FOUR (5, "2816", "excel index 5"),

    /**
     * excel index 6.
     */
    COLUMN_INDEX_FIVE(6, "4960", "excel index 6"),

    /**
     * excel index 7.
     */
    COLUMN_INDEX_SIX(7, "4864", "excel index 7"),

    /**
     * excel index8.
     */
    COLUMN_INDEX_SEVEN(8, "3840", "excel index 8"),

    /**
     * excel index 9.
     */
    COLUMN_INDEX_EIGHT (9, "2816", "excel index 9"),

    /**
     * excel index 10.
     */
    OLUMN_INDEX_NINE(10, "4960", "excel index 10"),

    /**
     * excel index 11.
     */
    COLUMN_INDEX_TEN (11, "3016", "excel index 11");

    /**
     * 整数key.
     */
    private final transient int intKey;

    /**
     * 字符串key.
     */
    private final transient String stringKey;

    /**
     * 显示标签.
     */
    private final transient String label;

    /**
     * @param intKey    整数key
     * @param stringKey 字符串key
     * @param label     标签
     */
    DiYiYiTiReportColumnEnum(final int intKey, final String stringKey, final String label) {
        this.intKey = intKey;
        this.stringKey = stringKey;
        this.label = label;
    }

    /**
     * 通过枚举字符串关键字获取枚举.
     *
     * @param key 枚举字符串关键字
     * @return 枚举字符串关键字对应的枚举常量实例
     */
    public static DiYiYiTiReportColumnEnum getByStringKey(final String key) {
        return EnumUtils.getByStringKey(DiYiYiTiReportColumnEnum.class, key);
    }

    /**
     * 通过枚举关键字获取枚举.
     *
     * @param index 枚举关键字
     * @return 枚举字符串关键字对应的枚举常量实例
     */
    public static DiYiYiTiReportColumnEnum getByIntKey(final int index) {
        return EnumUtils.getByIntKey(DiYiYiTiReportColumnEnum.class, index);
    }

    @Override
    public int getIntKey() {
        return intKey;
    }

    @Override
    public String getStringKey() {
        return stringKey;
    }

    @Override
    public String getLabel() {
        return label;
    }
}
